[hadoop@hadoop bin]$ ./sqlline.py hadoop:2181 Setting property: [incremental, false] Setting property: [isolation, TRANSACTION_READ_COMMITTED] issuing: !connect jdbc:phoenix:hadoop:2181 none none org.apache.phoenix.jdbc.PhoenixDriver Connecting to jdbc:phoenix:hadoop:2181 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home/hadoop/app/phoenix-4.14.0-cdh5.14.2/phoenix-4.14.0-cdh5.14.2-client.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/home/hadoop/app/hadoop-2.6.0-cdh5.14.2/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 20/03/31 20:58:35 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Connected to: Phoenix (version 4.14) Driver: PhoenixEmbeddedDriver (version 4.14) Autocommit status: true Transaction isolation: TRANSACTION_READ_COMMITTED Building list of tables and columns for tab-completion (set fastconnect to true to skip)... 133/133 (100%) Done Done sqlline version 1.2.0 0: jdbc:phoenix:hadoop:2181>
0: jdbc:phoenix:hadoop:2181> !tables +------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+----------+ | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS | TYPE_NAME | SELF_REFERENCING_COL_NAME | REF_GENERATION | INDEX_ST | +------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+----------+ | | SYSTEM | CATALOG | SYSTEM TABLE | | | | | | | | SYSTEM | FUNCTION | SYSTEM TABLE | | | | | | | | SYSTEM | LOG | SYSTEM TABLE | | | | | | | | SYSTEM | SEQUENCE | SYSTEM TABLE | | | | | | | | SYSTEM | STATS | SYSTEM TABLE | | | | | | +------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+----------+ 0: jdbc:phoenix:hadoop:2181> CREATE schema my_schema; No rows affected (0.032 seconds) 0: jdbc:phoenix:hadoop:2181> CREATE TABLE my_schema.my_table ( id BIGINT not null primary key, date Date); No rows affected (1.256 seconds) 0: jdbc:phoenix:hadoop:2181> select * from my_schema.my_table; +-----+-------+ | ID | DATE | +-----+-------+ +-----+-------+ No rows selected (0.063 seconds) 0: jdbc:phoenix:hadoop:2181>
插入数据phoenix插入是upsert与普通sql不同
1 2 3 4 5 6 7 8 9
0: jdbc:phoenix:hadoop:2181> upsert into my_schema.my_table(id, date) values (1,'2020-03-31'); 1 row affected (0.024 seconds) 0: jdbc:phoenix:hadoop:2181> select * from my_schema.my_table; +-----+--------------------------+ | ID | DATE | +-----+--------------------------+ | 1 | 2020-03-31 00:00:00.000 | +-----+--------------------------+ 1 row selected (0.035 seconds)
插入列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0: jdbc:phoenix:> alter table my_schema.my_table add sex varchar(10); No rows affected (6.614 seconds) 0: jdbc:phoenix:> select * from my_schema.my_table; +-----+--------------------------+------+ | ID | DATE | SEX | +-----+--------------------------+------+ | 1 | 2020-03-31 00:00:00.000 | | +-----+--------------------------+------+ 1 row selected (0.042 seconds) 0: jdbc:phoenix:> upsert into my_schema.my_table(id, date,sex) values (1,'2020-03-31','男'); 1 row affected (0.063 seconds) 0: jdbc:phoenix:> select * from my_schema.my_table; +-----+--------------------------+------+ | ID | DATE | SEX | +-----+--------------------------+------+ | 1 | 2020-03-31 00:00:00.000 | 男 | +-----+--------------------------+------+ 1 row selected (0.046 seconds) 0: jdbc:phoenix:>
复杂sql语句
1 2 3 4 5 6 7
0: jdbc:phoenix:> select sex,count(sex) as num from my_schema.my_table group by sex; +------+------+ | SEX | NUM | +------+------+ | 男 | 1 | +------+------+ 1 row selected (0.079 seconds)
@Insert("upsert into USER_INFO (ID,NAME) VALUES (#{user.id},#{user.name})") publicvoidaddUser(@Param("user") UserInfo userInfo);
@Delete("delete from USER_INFO WHERE ID=#{userId}") publicvoiddeleteUser(@Param("userId")int userId);
@Select("select * from USER_INFO WHERE ID=#{userId}") @ResultMap("userResultMap") public UserInfo getUserById(@Param("userId")int userId);
@Select("select * from USER_INFO WHERE NAME=#{userName}") @ResultMap("userResultMap") public UserInfo getUserByName(@Param("userName") String userName);
@Select("select * from USER_INFO") @ResultMap("userResultMap") public List<UserInfo> getUsers(); }